
package Excepciones;

import negocio.Linea;

/**
 * Esta clase contiene todos los tipos de errores que pueden ocurrir durante la validacion del XML.
 * Extiende de Exception
 * 
 * @author Emiliano
 */


public class ErrorValidacion extends Exception{
    private String error = "";
    
    public static final String ERROR_APERTURA_CIERRE_ETIQUETAS = "Error en la APERTURA-CIERRE de las etiquetas";
	public static final String ERROR_COMENTARIOS = "Error en la Validacion de Comentarios";
	public static final String ERROR_DECLARACION_XML = "Error en la declaracion XML o DOCTYPE";
	public static final String ERROR_GENERAL = "Error en la Validacion";
	public static final String ERROR_LIMPIEZA = "Error en la Limpieza de las etiquetas";
	public static final String ERROR_LINEA_SUELTA = "Error, hay una linea suelta";
	public static final String ERROR_VALIDACION_ETIQUETA = "Error en la Validacion de las etiquetas";

    public static int aux_contador = 0;
    
    /**
     * Constructor por parametros
     * @param tipoDeError - Corresponde a alguno de los atributos estaticos
     * @param grupo - El grupo donde se encuentra el error
     * @param linea - La linea que arroja el error
     * @param adicional - Informacion adicional sobre el error
     */
    public ErrorValidacion(String tipoDeError, String grupo, Linea linea, String adicional) {
        StringBuffer sb = new StringBuffer();
        sb.append("ERROR EN LA VALIDACION XML");
        sb.append("\n");
        sb.append("\n");
        sb.append("INFORMACION DEL ERROR: ");
        if (tipoDeError != null) {
            sb.append(tipoDeError);
        }
        if (linea != null) {
            sb.append("\n");
            sb.append("REVISAR EL CONTENIDO: " + linea.getLine() + " DEL NUMERO DE LINEA " + linea.getNumeroRenglon());
        }
        if (grupo != null) {
            sb.append("\n");
            sb.append("ERROR EN EL GRUPO: "+grupo);
        }
        if (adicional != null) {
            sb.append("\n");
            sb.append(adicional);
        }

        error = sb.toString();
    }
    
    
    public String getError() {
        return error;
    }

    
    public void setError(String error) {
        this.error = error;
    }
    
}
